import App from './App'

import Vue from 'vue'
import {
	apiPost
} from '@/common/api/api.js'
// import uView from './uni_modules/vk-uview-ui';
import uView from 'uview-ui';
Vue.use(uView);
Vue.config.productionTip = false
App.mpType = 'app'

	// const vconsole = require('vconsole')
	// Vue.prototype.$vconsole = new vconsole() // 使用vconsole


Vue.prototype.$navigateTo = function(router, data) {
	uni.navigateTo({
		url: router,
		data: data
	})
}

Vue.prototype.$showToast = function(message) {
	uni.showToast({
		title: message,
		icon: 'none'
	})
}


Vue.prototype.$haveVal = function(val,defVal='') {
	let res = defVal;
	if(!(val===null || val===undefined)){
		res = val;
	}
	return res;
}



// 防止处理多次点击
 Vue.prototype.$noMultipleClicks =function (methods, info) {
    // methods是点击后需要执行的函数， info是函数需要传的参数
    let that = this;
    if (that.noClick) {
        // 第一次点击
        that.noClick= false;
        if((info && info !== '') || info ==0) {
            // info是执行函数需要传的参数
            methods(info);
        } else {
            methods();
        }
        setTimeout(()=> {
            that.noClick= true;
        }, 2000)
    } else {
        //  这里是重复点击的判断
    }
}

/**
 * 日期格式化  this.$dateFormat(new Date(),'yyyy-MM-dd hh:mm:ss.S')
 * @param {*} date
 * @param {*} fmt
 */
Vue.prototype.$dateFormat = (date, fmt) => {
	date = new Date(date)
	var a = ['日', '一', '二', '三', '四', '五', '六']
	var o = {
	  'M+': date.getMonth() + 1, // 月份
	  'd+': date.getDate(), // 日
	  'h+': date.getHours(), // 小时
	  'm+': date.getMinutes(), // 分
	  's+': date.getSeconds(), // 秒
	  'q+': Math.floor((date.getMonth() + 3) / 3), // 季度
	  'S': date.getMilliseconds(), // 毫秒
	  'w': date.getDay(), // 周
	  'W': a[date.getDay()], // 大写周
	  'T': 'T'
	}
	if (/(y+)/.test(fmt)) { fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length)) }
	for (var k in o) {
	  if (new RegExp('(' + k + ')').test(fmt)) { fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? (o[k]) : (('00' + o[k]).substr(('' + o[k]).length))) }
	}
	return fmt
  }
// 获取系统类型 ,使用this.$SystemType属性获取
Vue.prototype.$SystemType = function(){
    let equipmentType = "android";
    let agent = navigator.userAgent.toLowerCase();
    let android = agent.indexOf("android");
    let iphone = agent.indexOf("iphone");
    let ipad = agent.indexOf("ipad");
    if(android != -1){
        equipmentType = "android";
    }
    if(iphone != -1 || ipad != -1){
        equipmentType = "ios";
    }
    return equipmentType;
}();

Vue.prototype.$isZero = function(message) {
	if (message == null || (message + '').length == 0) return true
	return parseFloat(message + '') <= 0
}

Vue.directive('inputTrim', {
	inserted: function(el, binding, vnode) {
		if(el.getElementsByTagName('input')){
			let input_el = el.getElementsByTagName('input')[0];
			input_el.addEventListener("blur", function(e) {
				input_el.value = input_el.value.trim();
			});

			input_el.addEventListener("input", function(e) {
				input_el.value = input_el.value.trim();
			});
		}
	}
});

Vue.directive('enterNumber', {
	inserted: function(el, binding, vnode) {
		el.addEventListener("keypress", function(e) {
			e = e || window.event;
			let charcode = typeof e.charCode == 'number' ? e.charCode : e.keyCode;
			let re=/\d/
			if (!re.test(String.fromCharCode(charcode)) && charcode > 9 && !e.ctrlKey) {
				if (e.preventDefault) {
					e.preventDefault();
				} else {
					e.returnValue = false;
				}
			}
		});

	}
});
Vue.directive('enterDigit', {
	inserted: function(el, binding, vnode) {
		el.addEventListener("keypress", function(e) {
			e = e || window.event;
			let charcode = typeof e.charCode == 'number' ? e.charCode : e.keyCode;
			let re = /\d{0,2}/;
			 if(e.key.indexOf("-")!=-1)
			 re=/\d/
			if (!re.test(String.fromCharCode(charcode)) && charcode > 9 && !e.ctrlKey) {
				if (e.preventDefault) {
					e.preventDefault();
				} else {
					e.returnValue = false;
				}
			}
		});

	}
});

Vue.prototype.$apiPost = apiPost


const app = new Vue({
	...App
})
app.$mount()
